home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / plnk081.zip / pilot-link.0.8.1 / Java / Pdapilot / Socket.java < prev    next >
Text File  |  1997-07-22  |  2KB  |  65 lines

  1.  
  2. package Pdapilot;
  3.  
  4. import java.io.*;
  5.  
  6. /** 
  7.  * A representation of a pilot-link socket. All pilot-link socket functions
  8.  * can be performed on these objects. When a DLP (Sync) connection is
  9.  * established via accept(), a Dlp object is returned.
  10.  *
  11.  * @see Dlp
  12.  * @author Kenneth Albanowski
  13.  */
  14.  
  15. public class Socket {
  16.         int socket;
  17.         
  18.         /**
  19.          * Construct a Socket from a domain/type/protocol three-tuple. Use
  20.          * values from constants for the arguments.
  21.          * @param    domain    the domain the socket needs to operate in. Please use constants.PI_AF_SLP, constants.PI_AF_INETSLP, or constants.AF_INET.
  22.          * @param    type    the type of socket to construct. Please use constants.PI_SOCK_STREAM or constants.PI_SOCK_RAW.
  23.          * @param    protocol    the protocol speaken by the socket. May be left zero, or use constants.PI_PF_SLP for a raw connection, or constants.PI_PF_PADP for a stream connection.
  24.          * @see constants
  25.          */
  26.         public Socket(int domain, int type, int protocol) throws IOException
  27.             { this.socket = calls.pi_socket(domain, type, protocol); }
  28.         
  29.         public Socket(int sock) { this.socket = sock; }
  30.  
  31.         public Socket(String port) throws IOException
  32.         {    this.socket = calls.pi_socket(0x51, 0x10, 0x51);
  33.             this.bind(port);
  34.             this.listen(1);
  35.         }
  36.  
  37.         synchronized public int bind(String device) throws IOException
  38.             { return calls.pi_bind(socket, device); }
  39.         synchronized public int listen(int backlog) throws IOException
  40.             { return calls.pi_listen(socket, backlog); }
  41.         synchronized public Dlp accept() throws IOException
  42.             { return new Dlp(calls.pi_accept(socket)); }
  43.         synchronized public int version() throws IOException
  44.             { return calls.pi_version(socket); }
  45.         synchronized public int tickle() throws IOException
  46.             { return calls.pi_tickle(socket); }
  47.         synchronized public int watchdog(int interval) throws IOException
  48.             { return calls.pi_watchdog(socket, interval); }
  49.         synchronized public int read(byte[] data, int len) throws IOException
  50.             { return calls.pi_read(socket, data, len); }
  51.         synchronized public int write(byte[] data, int len) throws IOException
  52.             { return calls.pi_write(socket, data, len); }
  53.                                                         
  54.         synchronized public void close() throws IOException, DlpException { 
  55.             /* this method must be idempotent */
  56.             if (this.socket != 0)
  57.                 calls.pi_close(socket);
  58.             this.socket = 0;
  59.         }
  60.  
  61.         protected void finalize() throws IOException, DlpException {
  62.             this.close();
  63.         }
  64. }
  65.